/*
 * VideoWindow.h
 *
 *  Created on: 2016年3月17日
 *      Author: terry
 */

#ifndef VIDEOWINDOW_H_
#define VIDEOWINDOW_H_

#include "MediaFormat.h"
#include "MediaFrame.h"

namespace av
{

class VideoWindow
{
public:
	virtual ~VideoWindow() {}

	virtual int open(void* hwnd) =0;
	virtual void close() =0;
	virtual bool isOpen() =0;

	virtual void setVideoWnd(void* hwnd) =0;

	virtual void setState(StreamState state) =0;

	virtual int draw(AVFramePtr& frame) =0;

	virtual bool isFullscreen() =0;

	virtual int setFullscreen(bool full) =0;

	virtual int setRatio(int width, int height) =0;

	virtual void getRatio(int& width, int& height) =0;

	virtual int setBackImage(const char* filepath) =0;

    virtual void flush() =0;

    virtual void setVisible(bool visible) =0;

};



} /* namespace av */

#endif /* VIDEOWINDOW_H_ */
